﻿using System.Reflection;
using System.Web.Profile;
using System.Web.Security;
using RazakiBLL;

namespace RazakiSite.Classes
{
    /// <summary>
    /// وابسته به 
    /// System.Web (Asp.Net)
    /// می باشد و قابل انتقال به لایه های دیگر نمی باشد مانند.
    /// BLL
    /// </summary>
    public class MySqlMembershipProvider : SqlMembershipProvider 
    {
        public override void Initialize(string name, System.Collections.Specialized.NameValueCollection config)
        {
            base.Initialize(name, config);
            FieldInfo connectionStringField;

            connectionStringField = GetType().BaseType.GetField("_sqlConnectionString", BindingFlags.Instance | BindingFlags.NonPublic);
            connectionStringField.SetValue(this, ConnectionStringManager.Get());
        }
    }

    /// <summary>
    /// وابسته به 
    /// System.Web (Asp.Net)
    /// می باشد و قابل انتقال به لایه های دیگر نمی باشد مانند.
    /// BLL
    /// </summary>
    public class MySqlRoleProvider : SqlRoleProvider
    {
        public override void Initialize(string name, System.Collections.Specialized.NameValueCollection config)
        {
            base.Initialize(name, config);

            FieldInfo connectionStringField;

            connectionStringField = GetType().BaseType.GetField("_sqlConnectionString", BindingFlags.Instance | BindingFlags.NonPublic);
            connectionStringField.SetValue(this, ConnectionStringManager.Get());
        }
    }

    /// <summary>
    /// وابسته به 
    /// System.Web (Asp.Net)
    /// می باشد و قابل انتقال به لایه های دیگر نمی باشد مانند.
    /// BLL
    /// </summary>
    public class MySqlProfileProvider : SqlProfileProvider
    {
        public override void Initialize(string name, System.Collections.Specialized.NameValueCollection config)
        {
            base.Initialize(name, config);

            FieldInfo connectionStringField;

            connectionStringField = GetType().BaseType.GetField("_sqlConnectionString", BindingFlags.Instance | BindingFlags.NonPublic);
            connectionStringField.SetValue(this, ConnectionStringManager.Get());
        }
    }
}